<?php

/***
 *
 * qPlanet: Planeta Hispalinux.
 * Desarrollo: Queru.
 *
 ***/
 
# Simplepie: Una 3rd-party que ahora un huevo de curro:
require_once ('3rd-party/simplepie/simplepie.inc');
include_once('3rd-party/simplepie/idn/idna_convert.class.php');

# Preparamos la autocarga de objetos:
function __autoload($clase)
{
	require_once("include/".$clase.".class.php");
}

# Configuración, opciones y feeds:
$Config = new Config;
$Config->SetOpts();

# Init de RSS:
$rss = new Rss;

# Pilla los posts:
Debug::info("Bajando los posts");
$posts = $rss->getPosts($Config->getFeeds());

# Abrir el output en escritura:
Debug::info("Generando HTML de salida en ".OUTDIR."/".OUTFILE);
Debug::info("Generando RSS 2.0 de salida en ".OUTDIR."/rss20.xml");
$fOutput = new Output;

#
# Genera los ficheros de salida:
#

# Cabecera:
Debug::info("Cabeceras");
$fOutput->write(Fichero::ReadAndParse('html/cabecera.html'));
$fOutput->writeRss(Fichero::ReadAndParse('xml/rss20_head.xml'));

# Javascript:
Debug::info("HTML: Funciones javascript");
$fOutput->write(Fichero::Read('html/funciones.js'));

# Cuerpo:
Debug::info("Cuerpos");

# Los posts:	
Debug::info("Los posts");
$fOutput->write('<div id="posts">');

# Bucle de posts:
foreach($posts as $post)
{
	Debug::info("  Salida (".$post['autor'].") ".$post['titulo']);
	$fOutput->write(Fichero::ReadAndParse('html/post.html', $post));
	$fOutput->writeRss(Fichero::ReadAndParse('xml/rss20_item.xml', $post));
}
$fOutput->write('</div>');
Debug::info("Fin de posts");
# ----------------

# -----------------------------------------------------
# Listas de cosas para la barra lateral y generar OPML:
# -----------------------------------------------------
Debug::info("HTML: Sidebar");
$fOutput->writeOpml(Fichero::ReadAndParse('xml/opml_head.xml'));
$lista_blogs = "<ul>\n";
$previos = array();
foreach($posts as $post)
{
	if(array_search($post['autor_link'], $previos) === false)
	{
		$previos[] = $post['autor_link'];
		$lista_blogs .= "<li><a href='".$post['autor_link']."'><img src='/gfx/feed-icon-10x10.png' alt='Feed RSS' /></a>"
			."<a href='".$post['blog_url']."'>".$post['blog_title']."</a></li>\n";
		$fOutput->writeOpml(Fichero::ReadAndParse('xml/opml_item.xml', $post));
	}
}
$fOutput->writeOpml(Fichero::ReadAndParse('xml/opml_foot.xml'));
$lista_blogs .= "</ul>\n";
define('LISTABLOGS', $lista_blogs); unset($lista_blogs);

# Otros planetas:
$planetas = $Config->getPlanetas();
$lista_planetas = "<ul>\n";
foreach($planetas as $planeta)
{
	$lista_planetas .= "<li><a href='".$planeta['rss']."'><img src='/gfx/feed-icon-10x10.png' alt='Feed RSS' /></a>"
			."<a href='".$planeta['url']."'>".$planeta['nombre']."</a></li>\n";
}
$lista_planetas .= "</ul>\n";
define('LISTAPLANETAS', $lista_planetas); unset($lista_planetas);

# Generar barra lateral:
$fOutput->write(Fichero::ReadAndParse('html/sidebar.html'));
# ---[Fin barra lateral]-----------------

# De entrada ocultamos todos los 'contenido':
$fOutput->write('<script type="text/javascript">$(".contenido").hide();</script>');

# Estadísticas:
Debug::info("HTML: Estadísticas");
$fOutput->write(Fichero::ReadAndParse('html/stats.html'));
	
# Cierre:
Debug::info("Cierres");
$fOutput->write(Fichero::ReadAndParse('html/pie.html'));
$fOutput->writeRss(Fichero::Read('xml/rss20_foot.xml'));

Debug::info("Finalizado");

?>